package com.example.redis.redEnvelope;

/*
 * 发红包:
 *  k v
 *  一个红包多个金额值 支持1：N
 *  数据结构：list
 *
 * 抢红包：
 *  如何保证 高并发 + 多线程 + 不加锁且保证原子性
 *  放进redis，每个命令天生单线程
 *
 * 记红包：
 *  盘点+汇总
 *  防止作弊，同一个用户不能抢多次
 *  数据结构：hash
 *
 * 拆红包：
 *  算法：二倍均值法
 *      剩余红包金额：M  剩余红包数量：N
 *      公式：
 *          每次抢到的金额 = 随机区间 (0, (M/N)*2)
 *      保证了每次随机金额的平均值是相等的，不会因为抢红包的先后顺序而造成不公平。
 */
public class Test {

}
